第二章 Mybatis入门 第2节 搭建Mybatis开发环境
2019-09-08
 | 持久化 |  阅读 |  1.1k 字 |  5 分钟2.2 搭建Mybatis开发环境
2.2.1 创建maven工程
1 2 3 4
   |  Groupid:com.ithiema ArtifactId:mybatis01 Packing:jar
 
  | 
 
2.2.2 添加Mybatis3.4.5的坐标
在pom.xml文件中添加Mybatis3.4.5的坐标,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
   | <dependencies>     <dependency>         <groupId>org.mybatis</groupId>         <artifactId>mybatis</artifactId>         <version>3.4.5</version>     </dependency>     <dependency>         <groupId>mysql</groupId>         <artifactId>mysql-connector-java</artifactId>         <version>5.1.6</version>     </dependency>     <dependency>         <groupId>log4j</groupId>         <artifactId>log4j</artifactId>         <version>1.2.12</version>     </dependency>     <dependency>         <groupId>junit</groupId>         <artifactId>junit</artifactId>         <version>4.10</version>     </dependency> </dependencies>
   | 
 
2.2.3 编写User实体类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
   | public class User implements Serializable{
      private Integer id;     private String username;     private Date birthday;     private String sex;     private String address;
      public Integer getId() { return id; }
      public void setId(Integer id) { this.id = id; }
      public String getUsername() { return username; }
      public void setUsername(String username) { this.username = username; }
      public Date getBirthday() { return birthday; }
      public void setBirthday(Date birthday) { this.birthday = birthday; }
      public String getSex() { return sex; }
      public void setSex(String sex) { this.sex = sex; }
      public String getAddress() { return address; }
      public void setAddress(String address) { this.address = address; }
      @Override     public String toString() {         return "User{" + "id=" + id + ", username='" + username + '\'' +             ", birthday=" + birthday + ", sex='" + sex + '\'' +             ", address='" + address + '\'' + '}';     } }
  | 
 
2.2.4 编写持久层接口IUserDao
IUserDao接口就是我们的持久层接口(也可以写成UserDao或者UserMapper),具体代码如下: 
1 2 3 4 5 6 7
   | public interface IUserDao {     
 
 
      List<User> findAll(); }
  | 
 
2.2.5 编写dao接口的映射文件
IUserDao.xml要求:
- 创建位置:必须和持久层接口在相同的包中。
 
- 名称:必须以持久层接口名称命名文件名,扩展名是.xml
 
1 2 3 4 5 6 7 8 9 10
   | <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"         "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.itheima.dao.IUserDao">          <select id="findAll" resultType="com.itheima.domain.User">         select * from user     </select> </mapper>
   | 
 
2.2.6 编写映射配置文件
SqlMapConfig.xml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
   | <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration         PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
  <configuration>          <environments default="mysql">                  <environment id="mysql">                          <transactionManager type="JDBC"></transactionManager>                          <dataSource type="POOLED">                                  <property name="driver" value="com.mysql.jdbc.Driver"/>                 <property name="url" value="jdbc:mysql://localhost:3306/eesy_mybatis"/>                 <property name="username" value="root"/>                 <property name="password" value="root"/>             </dataSource>         </environment>     </environments>
           <mappers>         <mapper resource="com/itheima/dao/IUserDao.xml"/>     </mappers> </configuration>
   | 
 
2.2.7 编写测试类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   | public class MybatisTest {
      
 
 
      public static void main(String[] args)throws Exception {                  InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");                  SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();         SqlSessionFactory factory = builder.build(in);                  SqlSession session = factory.openSession();                  IUserDao userDao = session.getMapper(IUserDao.class);                  List<User> users = userDao.findAll();         for(User user : users){             System.out.println(user);         }                  session.close();         in.close();     } }
  | 
 
2.2.8 环境搭建的注意事项
创建IUserDao.xml和IUserDao.java时名称是为了与之前的知识保持一致。在Mybatis中它把持久层的操作接口名称和映射文件也叫作:Mapper
所以:IUserDao和IUserMapper是一样的
 
在idea中创建目录的时候,它和包是不一样的
包在创建时,com.itheima.dao是三级结构
目录在创建时,com.itheima.dao是一级结构
 
Mybatis的映射文件位置必须和dao接口的包结构保持一致
 
映射配置文件的mapper标签namespace属性的取值必须是dao接口的全限定类名
 
映射配置文件的操作配置(select),属性id的取值必须是dao接口的方法名
当我们遵从了3、4、5点之后,在开发中就无须在写dao的实现类
 
本文标题:第二章 Mybatis入门 第2节 搭建Mybatis开发环境
文章作者:foreverSFJ
发布时间:2019-09-08 17:32:56
最后更新:2019-09-08 17:32:56
原始链接:Notes/Java/Persistence/Mybatis/02_02 搭建Mybatis开发环境.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明出处!
 分享